#include <stdio.h>
int number;
print(a) 
    int a[];
{
    int i;
    printf("No.%2d:  .......................\n", number++);
    printf(" ");
    for (i = 0; i <= 6; i++)
        printf(" | %c", a[i] == 1 ? '*' : (a[i] == 2 ? '@' : ' '));
    printf("   |\n...........................\n");
}
int main()
{
    int t[7] = {1, 1, 1, 0, 2, 2, 2};
    int i, flag;
    print(t);
    while (t[0] + t[1] + t[2] != 6 || t[4] + t[5] + t[6] != 3)
    {
        flag = 1;
        for (i = 0; flag && i < 5; i++)
            if (t[i] == 1 && t[i + 1] == 2 && t[i + 2] == 0)
            {
                change(&t[i], &t[i + 2]);
                print(t);
                flag = 0;
            }
        for (i = 0; flag && i < 5; i++)
            if (t[i] == 0 && t[i + 1] == 1 && t[i + 2] == 2)
            {
                change(&t[i], &t[i + 2]);
                print(t);
                flag = 0;
            }
        for (i = 0; flag && i < 6; i++)
            if (t[i] == 1 && t[i + 1] == 0 && (i == 0 || t[i - 1] != t[i + 2]))
            {
                change(&t[i], &t[i + 1]);
                print(t);
                flag = 0;
            }
        for (i = 0; flag && i < 6; i++)
            if (t[i] == 0 && t[i + 1] == 2 && (i == 5 || t[i - 1] != t[i + 2]))
            {
                change(&t[i], &t[i + 1]);
                print(t);
                flag = 0;
            }
    }
    return 0;
}
change(n, m) 
    int *n, *m;
{
    int term;
    term = *n;
    *n = *m;
    *m = term;
}
//熊贤豪